package com.lvhr.rpc.config;

import com.lvhr.rpc.fault.retry.RetryStrategyKeys;
import lombok.Data;

/**
 * RPC重试策略配置
 */
@Data
public class RetryStrategyConfig {

    /**
     * 默认重试策略
     */
    private String retryStrategy = RetryStrategyKeys.NO;
    /**
     * 初始重试间隔时间（毫秒）
     */
    private long initialIntervalMs = 1000L;
    /**
     * 最大重试间隔上限（毫秒）
     */
    private long maxIntervalMs = 30000L;
    /**
     * 退避倍数（浮点数）
     */
    private double multiplier = 2.0;
    /**
     * 最大重试次数（整数）
     */
    private int maxAttempts = 3;
    /**
     * 随机抖动因子（0-1浮点数）
     */
    private double jitterFactor = 0.2;
}
